import { createRouter, createWebHistory } from 'vue-router'
import { getToken } from '@/utils/cookie'

// 配置路由
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/oj/login',
      name: 'login',
      component: () => import('@/views/Login.vue')
    },
    {
      path:"/",
      redirect:'/oj/login',  // 地址重定向，前端启动直达登录页面
    },
    {
      path: '/oj/layout',
      name: 'layout',
      component: () => import('@/views/Layout.vue')
      ,
      children: [
        {
          path: 'question',
          name: 'question',
          component: () => import('@/views/Question.vue')
        },
        {
          path: 'exam',
          name: 'exam',
          component: () => import('@/views/Exam.vue')
        },
        // {
        //   path: 'updateExam',
        //   name: 'updateExam',
        //   component: () => import('@/views/UpdateExam.vue')
        // },
        {
          path: 'cuser',
          name: 'cuser',
          component: () => import('@/views/Cuser.vue')
        }
      ]
    }
  ]
})

// 全局前置守卫：在路由跳转之前执行的一些操作
 // 1. 如果用户已经登录过，但访问登录页面，自动跳转后台页面
 // 2. else，如果用户没登录过，但访问后台页面，自动跳转至登录页面
router.beforeEach((to, from, next) => {
  if (getToken()) {  //已经登陆过，有token
    /* has token*/
    if (to.path === '/oj/login') {
      next({ path: '/oj/layout' })  // 暂时：把路径里的quetion删除了
    } else {
      next() // 没有访问登录页面，该干嘛干嘛去
    }
  } else {
    if (to.path !== '/oj/login') {
      next({path:'/oj/login'})
    } else {
      next()
    }
  }
})

export default router





